package com.zmn.oms.third.koubei.service;


import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.entity.work.OrderWorkLogChange;
import com.zmn.oms.third.koubei.dto.KoubeiCreateOrderResponse;
import com.zmn.oms.third.koubei.dto.KoubeiQueryInventoryResponse;

/**
 * 口碑渠道接入接口定义
 *
 * @author xiewenbing
 * @date 2021/08/16
 */
public interface KoubeiService {

    /**
     * 处理订单创建
     * @param requestBody
     * @return
     * @throws Exception
     */
    KoubeiCreateOrderResponse handleCreateOrderRequest(String requestBody) throws OmsBaseException;

    /**
     * 处理预约库存查询
     * @param requestBody
     * @return
     * @throws Exception
     */
    KoubeiQueryInventoryResponse handleInventoryQueryRequest(String requestBody) throws OmsBaseException;

    /**
     * 领单同步
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderTake(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;

    /**
     * 改约同步
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderDutytime(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;

    /**
     * 上门同步
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderVisit(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;

    /**
     * 完成同步
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderCancel(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;

    /**
     * 取消同步
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderComplete(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;
}
